package simonby.top.annualring.infrastructure.dao;

import simonby.top.annualring.domain.model.UserFamily;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 用户家族关联Dao接口
 */
@Repository
public interface UserFamilyDao extends JpaRepository<UserFamily, Long> {
    /**
     * 根据用户ID查找关联的家族树
     *
     * @param userId 用户ID
     * @return 用户家族关联列表
     */
    List<UserFamily> findByUserId(Long userId);

    /**
     * 根据家族树ID查找关联的用户
     *
     * @param familyTreeId 家族树ID
     * @return 用户家族关联列表
     */
    List<UserFamily> findByFamilyTreeId(Long familyTreeId);

    /**
     * 根据用户ID和家族树ID查找关联关系
     *
     * @param userId       用户ID
     * @param familyTreeId 家族树ID
     * @return 用户家族关联对象
     */
    Optional<UserFamily> findByUserIdAndFamilyTreeId(Long userId, Long familyTreeId);
}